﻿using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;

namespace Tweets.Library
{
    /// <summary>
    /// Properties of a Twitter user account.
    /// </summary>
    public class TwitterUser
    {
        /// <summary>
        /// Id of the Twitter user.
        /// </summary>
        [JsonProperty(PropertyName = "id")]
        public long Id { get; set; }

        /// <summary>
        /// Name of the Twitter user.
        /// </summary>
        [JsonProperty(PropertyName = "name")]
        public string Name { get; set; }

        /// <summary>
        /// Account name of the Twitter user.
        /// </summary>
        [JsonProperty(PropertyName = "screen_name")]
        public string ScreenName { get; set; }
        
        /// <summary>
        /// User-defined location.
        /// </summary>
        [JsonProperty(PropertyName = "location")]
        public string Location { get; set; }

        /// <summary>
        /// User's description.
        /// </summary>
        [JsonProperty(PropertyName = "description")]
        public string Description { get; set; }
        
        /// <summary>
        /// URL if the user's profile thumbnail image.
        /// </summary>
        [JsonProperty(PropertyName = "profile_image_url")]
        public string ProfileImageUrl { get; set; }

        /// <summary>
        /// Date/time that the Twitter account was created.
        /// </summary>
        [JsonProperty(PropertyName = "created_at")]
        [JsonConverter(typeof(TwitterDateTimeConverter))]
        public DateTime CreatedOn { get; set; }
    }
}
